package com.cloud.wms.ui.inside.contract;

import com.cloud.core.base.BasePresenter;
import com.cloud.core.base.BaseView;
import com.cloud.wms.ui.inside.entity.ReplenishBindEntity;
import com.cloud.wms.ui.inside.entity.ReplenishCommodityEntity;
import com.cloud.wms.ui.inside.entity.ReplenishBatchEntity;
import com.cloud.wms.ui.main.entity.BatchEntity;
import com.cloud.wms.ui.main.entity.TaskEntity;

import java.util.ArrayList;

/**
 * Created by FC on 2021/3/12.
 * Desc：
 */
public interface ReplenishDownContract {
    interface View extends BaseView {

    }

    interface Presenter extends BasePresenter<View> {
        void loadReplenishOrder(String replenishCode, int page);

        void receiveTask(long billId, String taskCode);

        void checkBindContainer(long replenishId);

        void bindContainer(long replenishId, String containerCode);

        void loadReplenishCommodity(long replenishId);

        void loadReplenishCommodity(long replenishId, boolean isComplete);

        void checkDownPosCode(long billId, String posCode, long commodityId, int stockType);

        void confirmReplenishDown(TaskEntity taskEntity,
                                  ReplenishBindEntity bindEntity,
                                  ReplenishCommodityEntity commodityEntity,
                                  ArrayList<BatchEntity> posBatchEntity,
                                  int amount,
                                  boolean isDownComplete,
                                  boolean isGoShelf);

        void finishReplenishDown(TaskEntity taskEntity,
                                  ReplenishCommodityEntity commodityEntity);
    }
}
